Recording data associated with an unmanned aerial vehicle

ABSTRACT

In a particular embodiment, recording data associated with an unmanned aerial vehicle (UAV) is disclosed that includes a blockchain manager receiving a transaction message associated with a UAV. The particular embodiment also includes the blockchain manager using the information within the transaction message to create a block of data. In this particular embodiment, the blockchain manager stores the created block of data in a blockchain data structure associated with the UAV.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation application of and claims priorityfrom U.S. patent application Ser. No. 17/010,133, filed Sep. 2, 2020,which is a non-provisional application for patent entitled to a filingdate and claiming the benefit of earlier-filed U.S. Provisional PatentApplication No. 62/894,887, filed Sep. 2, 2019, and U.S. ProvisionalPatent Application No. 62/947,640, filed Dec. 13, 2019.

BACKGROUND

An Unmanned Aerial Vehicle (UAV) is a term used to describe an aircraftwith no pilot on-board the aircraft. The use of UAVs is growing in anunprecedented rate, and it is envisioned that UAVs will become commonlyused for package delivery and passenger air taxis. However, as UAVsbecome more prevalent in the airspace, there is a need to regulate airtraffic and ensure the safe navigation of the UAVs.

The Unmanned Aircraft System Traffic Management (UTM) is an initiativesponsored by the Federal Aviation Administration (FAA) to enablemultiple beyond visual line-of-sight drone operations at low altitudes(under 400 feet above ground level (AGL)) in airspace where FAA airtraffic services are not provided. However, a framework that extendsbeyond the 400 feet AGL limit is needed. For example, unmanned aircraftthat would be used by package delivery services and air taxis may needto travel at altitudes above 400 feet. Such a framework requirestechnology that will allow the FAA to safely regulate unmanned aircraft.

SUMMARY

In a particular embodiment, recording data associated with an unmannedaerial vehicle (UAV) is disclosed that includes a blockchain managerreceiving a transaction message associated with a UAV. The particularembodiment also includes the blockchain manager using the informationwithin the transaction message to create a block of data. In thisparticular embodiment, the blockchain manager stores the created blockof data in a blockchain data structure associated with the UAV.

The foregoing and other objects, features and advantages of theinvention will be apparent from the following more particulardescriptions of exemplary embodiments of the invention as illustrated inthe accompanying drawings wherein like reference numbers generallyrepresent like parts of exemplary embodiments of the invention.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram illustrating a particular implementation of asystem for recording data associated with an unmanned aerial vehicle;

FIG. 2 is a block diagram illustrating another implementation of asystem for recording data associated with an unmanned aerial vehicle;

FIG. 3A a block diagram illustrating a particular implementation of theblockchain used by the systems of FIGS. 1-2 to record data associatedwith an unmanned aerial vehicle;

FIG. 3B is an additional view of the blockchain of FIG. 3A;

FIG. 3C is an additional view of the blockchain of FIG. 3A;

FIG. 4 is a block diagram illustrating a particular implementation of asystem for recording data associated with an unmanned aerial vehicle;

FIG. 5 is a block diagram illustrating a particular implementation of asystem for recording data associated with an unmanned aerial vehicle;

FIG. 6 is a flowchart to illustrate a particular implementation of amethod for recording data associated with an unmanned aerial vehicle;

FIG. 7 is a flowchart to illustrate another implementation of a methodfor recording data associated with an unmanned aerial vehicle;

FIG. 8 is a flowchart to illustrate yet another implementation of amethod for recording data associated with an unmanned aerial vehicle;

FIG. 9 is a flowchart to illustrate yet another implementation of amethod for recording data associated with an unmanned aerial vehicle;

FIG. 10 is a flowchart to illustrate yet another implementation of amethod for recording data associated with an unmanned aerial vehicle;and

FIG. 11 is a flowchart to illustrate yet another implementation of amethod for recording data associated with an unmanned aerial vehicle.

DETAILED DESCRIPTION

Particular aspects of the present disclosure are described below withreference to the drawings. In the description, common features aredesignated by common reference numbers throughout the drawings. As usedherein, various terminology is used for the purpose of describingparticular implementations only and is not intended to be limiting. Forexample, the singular forms “a,” “an,” and “the” are intended to includethe plural forms as well, unless the context clearly indicatesotherwise. It may be further understood that the terms “comprise,”“comprises,” and “comprising” may be used interchangeably with“include,” “includes,” or “including.” Additionally, it will beunderstood that the term “wherein” may be used interchangeably with“where.” As used herein, “exemplary” may indicate an example, animplementation, and/or an aspect, and should not be construed aslimiting or as indicating a preference or a preferred implementation. Asused herein, an ordinal term (e.g., “first,” “second,” “third,” etc.)used to modify an element, such as a structure, a component, anoperation, etc., does not by itself indicate any priority or order ofthe element with respect to another element, but rather merelydistinguishes the element from another element having a same name (butfor use of the ordinal term). As used herein, the term “set” refers to agrouping of one or more elements, and the term “plurality” refers tomultiple elements.

In the present disclosure, terms such as “determining,” “calculating,”“estimating,” “shifting,” “adjusting,” etc. may be used to describe howone or more operations are performed. It should be noted that such termsare not to be construed as limiting and other techniques may be utilizedto perform similar operations. Additionally, as referred to herein,“generating,” “calculating,” “estimating,” “using,” “selecting,”“accessing,” and “determining” may be used interchangeably. For example,“generating,” “calculating,” “estimating,” or “determining” a parameter(or a signal) may refer to actively generating, estimating, calculating,or determining the parameter (or the signal) or may refer to using,selecting, or accessing the parameter (or signal) that is alreadygenerated, such as by another component or device.

As used herein, “coupled” may include “communicatively coupled,”“electrically coupled,” or “physically coupled,” and may also (oralternatively) include any combinations thereof. Two devices (orcomponents) may be coupled (e.g., communicatively coupled, electricallycoupled, or physically coupled) directly or indirectly via one or moreother devices, components, wires, buses, networks (e.g., a wirednetwork, a wireless network, or a combination thereof), etc. Two devices(or components) that are electrically coupled may be included in thesame device or in different devices and may be connected viaelectronics, one or more connectors, or inductive coupling, asillustrative, non-limiting examples. In some implementations, twodevices (or components) that are communicatively coupled, such as inelectrical communication, may send and receive electrical signals(digital signals or analog signals) directly or indirectly, such as viaone or more wires, buses, networks, etc. As used herein, “directlycoupled” may include two devices that are coupled (e.g., communicativelycoupled, electrically coupled, or physically coupled) withoutintervening components.

Exemplary methods, apparatuses, and computer program products forrecording data associated with a UAV in accordance with the presentinvention are described with reference to the accompanying drawings,beginning with FIG. 1 . FIG. 1 sets forth a diagram of a system (100)configured for recording data for an UAV according to embodiments of thepresent disclosure. The system (100) of FIG. 1 includes an unmannedaerial vehicle (UAV) (102), a control device (120), a server (140), adistributed computing network (151), an air traffic data server (160), aweather data server (170), a regulatory data server (180), and atopographical data server (190).

A UAV, commonly known as a drone, is a type of powered aerial vehiclethat does not carry a human operator and uses aerodynamic forces toprovide vehicle lift. UAVs are a component of an unmanned aircraftsystem (UAS), which typically include at least a UAV, a control device,and a system of communications between the two. The flight of a UAV mayoperate with various levels of autonomy including under remote controlby a human operator or autonomously by onboard or ground computers.Although a UAV may not include a human operator pilot, some UAVs, suchas passenger drones (drone taxi, flying taxi, or pilotless helicopter)carry human passengers.

For ease of illustration, the UAV (102) is illustrated as one type ofdrone. However, any type of UAV may be used in accordance withembodiments of the present disclosure and unless otherwise noted, anyreference to a UAV in this application is meant to encompass all typesof UAVs. Readers of skill in the art will realize that the type of dronethat is selected for a particular mission or excursion may depend onmany factors, including but not limited to the type of payload that theUAV is required to carry, the distance that the UAV must travel tocomplete its assignment, and the types of terrain and obstacles that areanticipated during the assignment.

In FIG. 1 , the UAV (102) includes a processor (104) coupled to a memory(106), a camera (112), positioning circuitry (114), and communicationcircuitry (116). The communication circuitry (116) includes atransmitter and a receiver or a combination thereof (e.g., atransceiver). In a particular implementation, the communicationcircuitry (116) (or the processor (104)) is configured to encryptoutgoing message(s) using a private key associated with the UAV (102)and to decrypt incoming message(s) using a public key of a device (e.g.,the control device (120) or the server (140)) that sent the incomingmessage(s). As will be explained further below, the outgoing andincoming messages may be transaction messages that include informationassociated with the UAV. Thus, in this implementation, communicationsbetween the UAV (102), the control device (120), and the server (140)are secure and trustworthy (e.g., authenticated).

The camera (112) is configured to capture image(s), video, or both, andcan be used as part of a computer vision system. For example, the camera(112) may capture images or video and provide the video or images to apilot of the UAV (102) to aid with navigation. Additionally, oralternatively, the camera (112) may be configured to capture images orvideo to be used by the processor (104) during performance of one ormore operations, such as a landing operation, a takeoff operation, orobject/collision avoidance, as non-limiting examples. Although a singlecamera (112) is shown in FIG. 1 , in alternative implementations moreand/or different sensors may be used (e.g., infrared, LIDAR, SONAR,etc.).

The positioning circuitry (114) is configured to determine a position ofthe UAV (102) before, during, and/or after flight. For example, thepositioning circuitry (114) may include a global positioning system(GPS) interface or sensor that determines GPS coordinates of the UAV(102). The positioning circuitry (114) may also include gyroscope(s),accelerometer(s), pressure sensor(s), other sensors, or a combinationthereof, that may be used to determine the position of the UAV (102).

The processor (104) is configured to execute instructions stored in andretrieved from the memory (106) to perform various operations. Forexample, the instructions include operation instructions (108) thatinclude instructions or code that cause the UAV (102) to perform flightcontrol operations. The flight control operations may include anyoperations associated with causing the UAV to fly from an origin to adestination. For example, the flight control operations may includeoperations to cause the UAV to fly along a designated route (e.g., basedon route information (110), as further described herein), to performoperations based on control data received from one or more controldevices, to take off, land, hover, change altitude, changepitch/yaw/roll angles, or any other flight-related operations. The UAV(102) may include one or more actuators, such as one or more flightcontrol actuators, one or more thrust actuators, etc., and execution ofthe operation instructions (108) may cause the processor (104) tocontrol the one or more actuators to perform the flight controloperations. The one or more actuators may include one or more electricalactuators, one or more magnetic actuators, one or more hydraulicactuators, one or more pneumatic actuators, one or more other actuators,or a combination thereof.

The route information (110) may indicate a flight path for the UAV (102)to follow. For example, the route information (110) may specify astarting point (e.g., an origin) and an ending point (e.g., adestination) for the UAV (102). Additionally, the route information mayalso indicate a plurality of waypoints, zones, areas, regions betweenthe starting point and the ending point.

The route information (110) may also indicate a corresponding set ofcontrol devices for various points, zones, regions, areas of the flightpath. The indicated sets of control devices may be associated with apilot (and optionally one or more backup pilots) assigned to havecontrol over the UAV (102) while the UAV (102) is in each zone. Theroute information (110) may also indicate time periods during which theUAV is scheduled to be in each of the zones (and thus time periodsassigned to each pilot or set of pilots).

In the example of FIG. 1 , the memory (106) of the UAV (102) alsoincludes communication instructions (111) that when executed by theprocessor (104) cause the processor (104) to transmit to the distributedcomputing network (151), transaction messages that include telemetrydata (107). Telemetry data may include any information that could beuseful to identifying the location of the UAV, the operating parametersof the UAV, or the status of the UAV. Examples of telemetry data includebut are not limited to GPS coordinates, instrument readings (e.g.,airspeed, altitude, altimeter, turn, heading, vertical speed, attitude,turn and slip), and operational readings (e.g., pressure gauge, fuelgauge, battery level).

The control device (120) includes a processor (122) coupled to a memory(124), a display device (132), and communication circuitry (134). Thedisplay device (132) may be a liquid crystal display (LCD) screen, atouch screen, another type of display device, or a combination thereof.The communication circuitry (134) includes a transmitter and a receiveror a combination thereof (e.g., a transceiver). In a particularimplementation, the communication circuitry (134) (or the processor(122)) is configured to encrypt outgoing message(s) using a private keyassociated with the control device (120) and to decrypt incomingmessage(s) using a public key of a device (e.g., the UAV (102) or theserver (140)) that sent the incoming message(s). Thus, in thisimplementation, communication between the UAV (102), the control device(120), and the server (140) are secure and trustworthy (e.g.,authenticated).

The processor (122) is configured to execute instructions from thememory (124) to perform various operations. The instructions alsoinclude control instructions (130) that include instructions or codethat cause the control device (120) to generate control data to transmitto the UAV (102) to enable the control device (120) to control one ormore operations of the UAV (102) during a particular time period, asfurther described herein. The instructions also include deconflictioninstructions (139) that include receiving flight path data for a firstunmanned aerial vehicle (UAV), wherein the flight path data indicates afirst flight path that traverses a geographic cell assigned to thedeconfliction controller; determining, by a deconfliction module,whether the first flight path conflicts with at least one second flightpath of at least one second UAV, wherein the at least one second flightpath also traverses the geographic cell; and providing, in dependenceupon the determination, first navigation instructions for one or moreUAVs. The deconfliction instructions (139) are further configured fordetermining that the first flight path conflicts with the at least oneof second flight path and providing, to at least one of the first UAVand the second UAV, rerouting instructions for a rerouted flight paththat avoids the conflict. In some embodiments the first UAV and the atleast one second UAV are coordinated by a server and the method furthercomprises transmitting one or more rerouted flight paths to a server.The deconfliction instructions (139) are further configured forreceiving a flight path approval request and providing a flight pathapproval response to the first UAV.

In the example of FIG. 1 , the memory (124) of the control device (102)also includes communication instructions (131) that when executed by theprocessor (122) cause the processor (122) to transmit to the distributedcomputing network (151), transaction messages that include controlinstructions (130) or deconfliction instructions (139) that are directedto the UAV (102). In a particular embodiment, the transaction messagesare also transmitted to the UAV and the UAV takes action (e.g.,adjusting flight operations), based on the information (e.g., controldata) in the message.

The server (140) includes a processor (142) coupled to a memory (146),and communication circuitry (144). The communication circuitry (144)includes a transmitter and a receiver or a combination thereof (e.g., atransceiver). In a particular implementation, the communicationcircuitry (144) (or the processor (142)) is configured to encryptoutgoing message(s) using a private key associated with the server (140)and to decrypt incoming message(s) using a public key of a device (e.g.,the UAV (102) or the control device (120)) that sent the incomingmessage(s). As will be explained further below, the outgoing andincoming messages may be transaction messages that include informationassociated with the UAV. Thus, in this implementation, communicationbetween the UAV (102), the control device (120), and the server (140)are secure and trustworthy (e.g., authenticated).

The processor (142) is configured to execute instructions from thememory (146) to perform various operations. The instructions includeroute instructions (148) comprising computer program instructions foraggregating data from disparate data servers, virtualizing the data in amap, generating a cost model for paths traversed in the map, andautonomously selecting the optimal route for the UAV based on the costmodel. For example, the route instructions (148) are configure topartition a map of a region into geographic cells, calculate a cost foreach geographic cell, wherein the cost is a sum of a plurality ofweighted factors, determine a plurality of flight paths for the UAV froma first location on the map to a second location on the map, whereineach flight path traverses a set of geographic cells, determine a costfor each flight path based on the total cost of the set of geographiccells traversed, and select, in dependence upon the total cost of eachflight path, an optimal flight path from the plurality of flight paths.The route instructions (148) are further configured to obtain data fromone or more data servers regarding one or more geographic cells,calculate, in dependence upon the received data, an updated cost foreach geographic cell traversed by a current flight path, calculate acost for each geographic cell traversed by at least one alternativeflight path from the first location to the second location, determinethat at least one alternative flight path has a total cost that is lessthan the total cost of the current flight path, and select a new optimalflight path from the at least one alternative flight paths. The routeinstructions (148) may also include instructions for storing theparameters of the selected optimal flight path as route information(110). For example, the route information may include waypoints markedby GPS coordinates, arrival times for waypoints, pilot assignments. Theserver (140) may be configured to transmit the route information (110)to the UAV (102).

The instructions may also include control instructions (150) thatinclude instructions or code that cause the server (140) to generatecontrol data to transmit to the UAV (102) to enable the server (140) tocontrol one or more operations of the UAV (102) during a particular timeperiod, as further described herein.

In the example of FIG. 1 , the memory (146) of the server (140) alsoincludes communication instructions (147) that when executed by theprocessor (142) cause the processor (142) to transmit to the distributedcomputing network (151), transaction messages that include controlinstructions (150) or route instructions (139) that are directed to theUAV (102).

The distributed computing network (151) of FIG. 1 includes a pluralityof computers (157). An example computer (158) of the plurality ofcomputers (157) is shown and includes a processor (152) coupled to amemory (154), and communication circuitry (153). The communicationcircuitry (153) includes a transmitter and a receiver or a combinationthereof (e.g., a transceiver). In a particular implementation, thecommunication circuitry (153) (or the processor (152)) is configured toencrypt outgoing message(s) using a private key associated with thecomputer (158) and to decrypt incoming message(s) using a public key ofa device (e.g., the UAV (102), the control device (120), or the server(140)) that sent the incoming message(s). As will be explained furtherbelow, the outgoing and incoming messages may be transaction messagesthat include information associated with the UAV. Thus, in thisimplementation, communication between the UAV (102), the control device(120), the server (140), and the distributed computing network (151) aresecure and trustworthy (e.g., authenticated).

The processor (145) is configured to execute instructions from thememory (154) to perform various operations. The memory (154) includes ablockchain manager (155) that includes computer program instructions forrecording data associated with the UAV (102). Specifically, theblockchain manager (155) includes computer program instructions thatwhen executed by the processor (152) cause the processor (152) toreceive a transaction message associated with a UAV. For example, theblockchain manager may receive transaction messages from the UAV (102),the control device (120), or the server (140). As will be explainedbelow, other entities (e.g., a service repair technician) may transmittransaction messages associated with a UAV to the blockchain manager(155). The blockchain manager (155) also includes computer programinstructions that when executed by the processor (152) cause theprocessor (152) to use the information within the transaction message tocreate a block of data; and store the created block of data in ablockchain data structure (156) associated with the UAV.

The blockchain manager may also include instructions for accessinginformation regarding an unmanned aerial vehicle (UAV). For example, theblockchain manager (155) also includes computer program instructionsthat when executed by the processor (152) cause the processor to receivefrom a user, a request for information regarding the UAV; in response toreceiving the request, retrieve from a blockchain data structureassociated with the UAV, data associated with the information requested;and based on the retrieved data, respond to the user.

The UAV (102), the control device (120), and server (140) arecommunicatively coupled via a network (118). For example, the network(118) may include a satellite network or another type of network thatenables wireless communication between the UAV (102), the control device(120), the server (140), and the distributed computing network (151). Inan alternative implementation, the control device (120), the server(140) communicate with the UAV (102) via separate networks (e.g.,separate short range networks.

In some situations, minimal (or no) manual control of the UAV (102) maybe performed, and the UAV (102) may travel from the origin to thedestination without incident. However, in some situations, one or morepilots may control the UAV (102) during a time period, such as toperform object avoidance or to compensate for an improper UAV operation.In some situations, the UAV (102) may be temporarily stopped, such asduring an emergency condition, for recharging, for refueling, to avoidadverse weather conditions, responsive to one or more status indicatorsfrom the UAV (102), etc. In some implementations, due to the unscheduledstop, the route information (110) may be updated (e.g., via a subsequentblockchain entry, as further described herein) by route instructions(148) executing on the UAV (102), the control device (120), or theserver (140)). The updated route information may include updatedwaypoints, updated time periods, and updated pilot assignments.

In a particular implementation, the route information is exchanged usinga blockchain data structure. The blockchain data structure may be sharedin a distributed manner across a plurality of devices of the system(100), such as the UAV (102), the control device (120), the server(140), and any other control devices or UAVs in the system (100). In aparticular implementation, each of the devices of the system (100)stores an instance of the blockchain data structure in a local memory ofthe respective device. In other implementations, each of the devices ofthe system (100) stores a portion of the shared blockchain datastructure and each portion is replicated across multiple of the devicesof the system (100) in a manner that maintains security of the sharedblockchain data structure as a public (i.e., available to other devices)and incorruptible (or tamper evident) ledger. Alternatively, as in FIG.1 , the blockchain (156) is stored in a distributed manner in thedistributed computing network (151).

The blockchain data structure (156) may include, among other things,route information associated with the UAV (102), the telemetry data(107), the control instructions (131), the deconfliction instructions(139), and the route instructions (148). For example, the routeinformation (110) may be used to generate blocks of the blockchain datastructure (156). A sample blockchain data structure (300) is illustratedin FIGS. 3A-3C. Each block of the blockchain data structure (300)includes block data and other data, such as availability data, routedata, telemetry data, service information, incident reports, etc.

The block data of each block includes information that identifies theblock (e.g., a block ID) and enables the devices of the system (100) toconfirm the integrity of the blockchain data structure (300). Forexample, the block data also includes a timestamp and a previous blockhash. The timestamp indicates a time that the block was created. Theblock ID may include or correspond to a result of a hash function (e.g.,a SHA256 hash function, a RIPEMD hash function, etc.) based on the otherinformation (e.g., the availability data or the route data) in the blockand the previous block hash (e.g., the block ID of the previous block).For example, in FIG. 3A, the blockchain data structure (300) includes aninitial block (Bk_0) (302) and several subsequent blocks, including ablock Bk_1 (304), a block Bk_2 (306), a block BK_3 (307), a block BK_4(308), a block BK_5 (309), and a block Bk_n (310). The initial blockBk_0 (302) includes an initial set of availability data or route data, atimestamp, and a hash value (e.g., a block ID) based on the initial setof availability data or route data. As shown in FIG. 1 , the block Bk_1(304) also may include a hash value based on the other data of the blockBk_1 (304) and the previous hash value from the initial block Bk_0(302). Similarly, the block Bk_2 (306) other data and a hash value basedon the other data of the block Bk_2 (306) and the previous hash valuefrom the block Bk_1 (304). The block Bk n (310) includes other data anda hash value based on the other data of the block Bk_n (310) and thehash value from the immediately prior block (e.g., a block Bk_n−1). Thischained arrangement of hash values enables each block to be validatedwith respect to the entire blockchain; thus, tampering with or modifyingvalues in any block of the blockchain is evident by calculating andverifying the hash value of the final block in the block chain.Accordingly, the blockchain acts as a tamper-evident public ledger ofavailability data and route data for the system (100).

In addition to the block data, each block of the blockchain datastructure (300) includes some information associated with a UAV (e.g.,availability data, route information, telemetry data, incident reports,updated route information, maintenance records, etc.). For example, theblock Bk_1 (304) includes availability data that includes a user ID(e.g., an identifier of the mobile device, or the pilot, that generatedthe availability data), a zone (e.g., a zone at which the pilot will beavailable), and an availability time (e.g., a time period the pilot isavailable at the zone to pilot a UAV). As another example, the blockBk_2 (306) includes route information that includes a UAV ID, a startpoint, an end point, waypoints, GPS coordinates, zone markings, timeperiods, primary pilot assignments, and backup pilot assignments foreach zone associated with the route.

In the example of FIG. 3B, the block BK_3 (307) includes telemetry data,such as a user ID (e.g., an identifier of the UAV that generated thetelemetry data), a battery level of the UAV; a GPS position of the UAV;and an altimeter reading. As explained in FIG. 1 , a UAV may includemany types of information within the telemetry data that is transmittedto the blockchain managers of the computers within the distributedcomputing network (151). In a particular embodiment, the UAV isconfigured to periodically broadcast to the network (118), a transactionmessage that includes the UAV's current telemetry data. The blockchainmanagers of the distributed computing network receive the transactionmessage containing the telemetry data and store the telemetry datawithin the blockchain (156).

FIG. 3B also depicts the block BK_4 (308) as including updated routeinformation having a start point, an endpoint, and a plurality of zonetimes and backups, along with a UAV ID. In a particular embodiment, thecontrol device (120) or the server (140) may determine that the route ofthe UAV should be changed. For example, the control device or the servermay detect that the route of the UAV conflicts with a route of anotherUAV or a developing weather pattern. As another example, the controldevice or the server many determine that the priority level or concernsof the user have changed and thus the route needs to be changed. In suchinstances, the control device or the server may transmit to the UAV,updated route information, control data, or navigation information.Transmitting the updated route information, control data, or navigationinformation to the UAV may include broadcasting a transaction messagethat includes the updated route information, control data, or navigationinformation to the network (118). The blockchain manager (155) in thedistributed computing network (151), retrieves the transaction messagefrom the network (118) and stores the information within the transactionmessage in the blockchain (156).

FIG. 3C depicts the block BK_5 (309) as including data describing anincident report. In the example of FIG. 3C, the incident report includesa user ID; a warning message; a GPS position; and an altimeter reading.In a particular embodiment, a UAV may transmit a transaction messagethat includes an incident report in response to the UAV experiencing anincident. For example, if during a flight mission, one of the UAV'spropellers failed, a warning message describing the problem may begenerated and transmitted as a transaction message.

FIG. 3C also depicts the block BK_n (310) that includes a maintenancerecord having a user ID of the service provider that serviced the UAV;flight hours that the UAV had flown when the service was performed; theservice ID that indicates the type of service that was performed; andthe location that the service was performed. UAV must be servicedperiodically. When the UAV is serviced, the service provider maybroadcast to the blockchain managers in the distributed computingnetwork, a transaction message that includes service information, suchas a maintenance record. Blockchain managers may receive the messagesthat include the maintenance record and store the information in theblockchain data structure. By storing the maintenance record in theblockchain data structure, a digital and immutable record or logbook ofthe UAV may be created. This type of record or logbook may beparticularly useful to a regulatory agency and an owner/operator of theUAV.

Referring back to FIG. 1 , in a particular embodiment, the server (140)includes software that is configured to receive telemetry informationfrom an airborne UAV and track the UAV's progress and status. The server(140) is also configured to transmit in-flight commands to the UAV.Operation of the control device and the server may be carried out bysome combination of a human operator and autonomous software (e.g.,artificial intelligence (AI) software that is able to perform some orall of the operational functions of a typical human operator pilot).

In a particular embodiment, the route instructions (148) cause theserver (140) to plan a flight path, generate route information,dynamically reroute the flight path and update the route informationbased on data aggregated from a plurality of data servers. For example,the server (140) may receive air traffic data (167) over the network(119) from the air traffic data server (160), weather data (177) fromthe weather data server (170), regulatory data (187) from the regulatorydata server (180), and topographical data (197) from the topographicdata server (190). It will be recognized by those of skill in the artthat other data servers useful in-flight path planning of a UAV may alsoprovide data to the server (140) over the network (101) or throughdirect communication with the server (140).

The air traffic data server (160) may include a processor (162), memory(164), and communication circuitry (168). The memory (164) of the airtraffic data server (160) may include operating instructions (166) thatwhen executed by the processor (162) cause the processor to provide theair traffic data (167) about the flight paths of other aircraft in aregion, including those of other UAVs. The air traffic data may alsoinclude real-time radar data indicating the positions of other aircraft,including other UAVs, in the immediate vicinity or in the flight path ofa particular UAV. Air traffic data servers may be, for example, radarstations, airport air traffic control systems, the FAA, UAV controlsystems, and so on.

The weather data server (170) may include a processor (172), memory(174), and communication circuitry (178). The memory (174) of theweather data server (170) may include operating instructions (176) thatwhen executed by the processor (172) cause the processor to provide theweather data (177) that indicates information about atmosphericconditions along the UAV's flight path, such as temperature, wind,precipitation, lightening, humidity, atmospheric pressure, and so on.Weather data servers may be, for example, the National Weather Service(NWS), the National Oceanic and Atmospheric Administration (NOAA), localmeteorologists, radar stations, other aircraft, and so on.

The regulatory data server (180) may include a processor (182), memory(184), and communication circuitry (188). The memory (184) of theweather data server (180) may include operating instructions (186) thatwhen executed by the processor (182) cause the processor provide theregulatory data (187) that indicates information about laws andregulations governing a particular region of airspace, such as airspacerestrictions, municipal and state laws and regulations, permanent andtemporary no-fly zones, and so on. Regulatory data servers may include,for example, the FAA, state and local governments, the Department ofDefense, and so on.

The topographical data server (190) may include a processor (192),memory (194), and communication circuitry (198). The memory (194) of thetopographical data server (190) may include operating instructions (196)that when executed by the processor (192) cause the processor to providethe topographical data that indicates information about terrain, places,structures, transportation, boundaries, hydrography, orthoimagery, landcover, elevation, and so on. Topographic data may be embodied in, forexample, digital elevation model data, digital line graphs, and digitalraster graphics. Topographic data servers may include, for example, theUnited States Geological Survey or other geographic information systems(GISs).

In some embodiments, the server (140) may aggregate data from the dataservers (160, 170, 180, 190) using application program interfaces(APIs), syndicated feeds and eXtensible Markup Language (XML), naturallanguage processing, JavaScript Object Notation (JSON) servers, orcombinations thereof. Updated data may be pushed to the server (140) ormay be pulled on-demand by the server (140). Notably, the FAA may be animportant data server for both airspace data concerning flight paths andcongestion as well as an important data server for regulatory data suchas permanent and temporary airspace restrictions. For example, the FAAprovides the Aeronautical Data Delivery Service (ADDS), the AeronauticalProduct Release API (APRA), System Wide Information Management (SWIM),Special Use Airspace information, and Temporary Flight Restrictions(TFR) information, among other data. The National Weather Service (NWS)API allows access to forecasts, alerts, and observations, along withother weather data. The USGS Seamless Server provides geospatial datalayers regarding places, structures, transportation, boundaries,hydrography, orthoimagery, land cover, and elevation. Readers of skillin the art will appreciate that various governmental andnon-governmental entities may act as data servers and provide access tothat data using APIs, JSON, XML, and other data formats.

Readers of skill in the art will realize that the server (140) cancommunicate with a UAV (102) using a variety of methods. For example,the UAV (102) may transmit and receive data using Cellular, 5G, Sub1GHz,SigFox, WiFi networks, or any other communication means that would occurto one of skill in the art.

The network (119) may comprise one or more Local Area Networks (LANs),Wide Area Networks (WANs), cellular networks, satellite networks,internets, intranets, or other networks and combinations thereof. Thenetwork (119) may comprise one or more wired connections, wirelessconnections, or combinations thereof.

The arrangement of servers and other devices making up the exemplarysystem illustrated in FIG. 1 are for explanation, not for limitation.Data processing systems useful according to various embodiments of thepresent invention may include additional servers, routers, otherdevices, and peer-to-peer architectures, not shown in FIG. 1 , as willoccur to those of skill in the art. Networks in such data processingsystems may support many data communications protocols, including forexample TCP (Transmission Control Protocol), IP (Internet Protocol),HTTP (HyperText Transfer Protocol), and others as will occur to those ofskill in the art. Various embodiments of the present invention may beimplemented on a variety of hardware platforms in addition to thoseillustrated in FIG. 1 .

For further explanation, FIG. 2 sets forth a block diagram illustratinganother implementation of a system (200) for recording data associatedwith unmanned aerial vehicles. Specifically, the system (200) of FIG. 2shows an alternative configuration in which one or both of the UAV (102)and the server (140) may include route instructions (148) for generatingroute information. In this example, instead of relying on a server (140)to generate the route information, the UAV (102) and the control device(120) may retrieve and aggregate the information from the various datasources (e.g., the air traffic data server (160), the weather dataserver (170), the regulatory data server (180), and the topographicaldata server (190)). As explained in FIG. 1 , the route instructions maybe configured to use the aggregated information from the various sourceto plan and select a flight path for the UAV (102).

FIG. 4 is a block diagram illustrating a particular implementation of asystem (400) for recording data associated with an unmanned aerialvehicle. The system (400) includes the first UAV (102) of FIGS. 1-2 , asecond UAV (103), a third UAV (105), the distributed computing network(151) of FIGS. 1-2 , and a provider participant device (450) coupled forcommunication to a network (418).

In a particular embodiment, the network (418) may include a satellitenetwork or another type of network that enables wireless communicationbetween the UAVs (102, 103, 105), the provider participant device (450),and the distributed computing network (151). In an alternativeimplementation, the UAVs (102, 103, 105), the provider participantdevice (450), and the distributed computing network (151) communicatedwith each other via separate networks (e.g., separate short rangenetworks.

The provider participant device (450) includes a processor (442) coupledto communication circuitry (444) and a memory (446). The memory (446)includes operating instructions (448) which are configured to generateservice information (449) and transmit via the communication circuitry(444), a transaction message that includes the service information(449). A provider participant device may be a device that is used by aprovider participant to log and transmit a record of the service that isperformed and associated with a UAV. Examples of provider participantsinclude but are not limited to maintenance technicians and repair shops;infrastructure providers (e.g., providers of UAV storage facilities andparking spots); and insurance providers (e.g., insurance companies thatprovide insurance for flight missions). For example, if a UAV goes to aservice repair shop and gets its battery changed, the technician at theservice repair shop may enter the UAV's information into the providerparticipant device along with a selection of “replaced battery” as adescription of the service that was performed. The provider participantdevice may encapsulate this information along with additionalinformation, such as the flight hours of the UAV, within the serviceinformation (449). The provider participant device may broadcast atransaction message that includes the service information (449) to thedistributed computing network. As explained above, the blockchainmanagers of the distributed computing network may create a block thatincludes the service information and store the block in the blockchain(156).

FIG. 5 is a block diagram illustrating a particular implementation of asystem (500) for recording data associated with an unmanned aerialvehicle. The system (500) of FIG. 5 includes the distributed computingnetwork (151) of FIGS. 1-2 , coupled to a logbook user device (550) viaa network (518). The logbook user device (550) includes a processor(542) coupled to communication circuitry (544) and a memory (546). Thememory (546) includes operating instructions (548) that when executed bythe processor (546) cause the processor to transmit a request (591) forinformation (592) to the blockchain managers of the distributedcomputing network (151). A logbook user may use the logbook user deviceto access and retrieve information from the blockchain (156) stored inthe distributed computing network (151). For example, the logbook usermay be an owner of the UAV. In this example, the owner of the UAV maywant to retrieve information regarding a particular incident involvingthe UAV. Alternatively, the logbook user may a regulatory agency, suchas the FAA, that wants access to the logbook entries associated with aUAV.

In a particular embodiment, the request (591) includes parameters (593)that further define what information is being requested. For example,the parameters may define a specific time frame and type of data, suchas all telemetry data or incident data on a specific day.

In response to receiving the request (591), one or more of theblockchain managers of the distributed computing network may access andretrieve from the blockchain, data associated with the informationrequested. Based on the retrieved data, the blockchain manager mayrespond to the logbook user by transmitting the retrieved data to thelogbook user. In this example, the logbook user device (550) may receivethe retrieved data.

In a particular embodiment, the retrieved data includes logbook entriesassociated with the UAV. In another embodiment, either a blockchainmanager or the logbook user device uses the retrieved data to generatelogbook entries (590). For example, the retrieved data may include anatural language form filled in with data associated with the UAV. Asanother example, a logbook entry may be created by filling in a naturallanguage form using the retrieved data.

For further explanation, FIG. 6 sets forth a flow chart illustrating anexemplary method for recording data associated with an unmanned aerialvehicle. The method of FIG. 6 includes a blockchain manager (601)receiving (602) a transaction message (650) associated with a UAV (603).Receiving (602) a transaction message (650) associated with a UAV (603)may be carried out by the UAV broadcasting the transaction message (650)to the network (118) of FIG. 1 and the blockchain manager (601)receiving the message into a buffer for further inspection.

The method of FIG. 6 also includes the blockchain manager (601) using(604) the information within the transaction message (650) to create ablock (652) of data. Using (604) the information within the transactionmessage (650) to create a block (652) of data may be carried out bycombining the information in the transaction message with othertransaction messages and the hash of the previous block in theblockchain to create the next block for the blockchain. A hash is aunique mathematical code which belongs to a specific block.

In addition, the method of FIG. 6 includes storing (606), by theblockchain manager (601), the created block (652) of data in ablockchain data structure (654) associated with the UAV (606). Storing(606), by the blockchain manager (601), the created block (652) of datain a blockchain data structure (654) associated with the UAV may becarried out by adding the new block to the blockchain. As newtransactions are added to the blockchain data structure, eachtransaction's veracity can be tested against the previous block. If theinformation inside the block is modified, the hash of the block will besubject to modification too. In this case, the hash of the modifiedblock will not match the hash in the next block and the block will notbe verified. The connection of blocks through unique hash keys is partof what makes blockchains secure.

For further explanation, FIG. 7 sets forth a flow chart illustrating anexemplary method for recording data associated with an unmanned aerialvehicle according to embodiments of the present disclosure. Like theexemplary method of FIG. 6 , the exemplary method of FIG. 7 alsoincludes receiving (602) a transaction message associated with a UAV;using (604) the information within the transaction message to create ablock of data; and storing (606), by the blockchain manager, the createdblock of data in a blockchain data structure associated with the UAV.

The exemplary method of FIG. 7 differs from the method of FIG. 6 in thatusing (604) the information within the transaction message to create ablock of data includes filling (702) a logbook entry form (750) with theinformation (752) within the transaction message. Filling (702) alogbook entry form with the information within the transaction messagemay be carried out by combining natural language with the informationwithin the transaction message.

The exemplary method of FIG. 7 differs from the method of FIG. 6 in thatusing (604) the information within the transaction message to create ablock of data includes representing (704) the logbook entry form in theblock of data. Representing (704) the logbook entry form in the block ofdata may be carried out by representing the combination of naturallanguage and the data with the block of data stored in the blockchaindata structure.

For further explanation, FIG. 8 sets forth a flow chart illustrating anexemplary method for recording data associated with an unmanned aerialvehicle according to embodiments of the present disclosure. Like theexemplary method of FIG. 6 , the exemplary method of FIG. 8 alsoincludes receiving (602) a transaction message associated with a UAV;using (604) the information within the transaction message to create ablock of data; and storing (606), by the blockchain manager, the createdblock of data in a blockchain data structure associated with the UAV.

The exemplary method of FIG. 8 differs from the method of FIG. 6 in thatreceiving (602) a transaction message associated with a UAV includesreceiving (802), from the UAV, telemetry data (860) indicating at leastone of: a position of the UAV and operational parameters of the UAV.Receiving (802), from the UAV, telemetry data indicating at least oneof: a position of the UAV and operational parameters of the UAV may becarried out by the UAV periodically transmitting the telemetry data tothe distributed computing network and blockchain managers within thedistributed computing network logging the telemetry data for storage inthe blockchain data structure.

In a particular embodiment, the UAVs transmit to the ground controlleror distributed computing network, at some frequency (e.g., everysecond), a heartbeat that includes their telemetry data. In thisembodiment, the distributed computing network could create and store anear real-time history of transactions from the UAV. In a particularembodiment, the UAVs generate and transmit an electronic logbook entrydirectly to the distributed computing network for storage within theblockchain.

One advantage to storing the UAV's telemetry data in a blockchain isthat because each transaction is cryptographically secured and linked tothe previous transaction as it is recorded, the data stored in theblockchain is immutable. As explained above, having a permanent,unalterable record could be particular useful with the generation ofdetailed histories associated with a UAV's flight history. For example,the telemetry data from a UAV may be used to establish a logbook for theUAV. Typically, pilots use a logbook to record every flight that a pilothas flown including flight time, number of landings, and types ofinstrument approaches made. In most countries, pilots are required tomaintain a logbook, per their government's aviation regulations. In aparticular embodiment, a programmable input may be applied to thetelemetry data from the UAV to generate natural language, which isrecorded in an electronic logbook. For example, a natural languagegeneration module within either the UAV, the ground controller, or oneof the computer of the distributed computing network may generate, basedon the telemetry data, text for an electronic logbook that recites “At18:00 hours, I am flying at three hundred feet at GPS coordinates30.2672° N, 97.7431° W, with fifty percent battery power.” This type ofnatural language translation and recording may be useful for helping thepilot complete their own paper logbook entries. Creating an electroniclogbook from the telemetry data transmitted from the UAV would allow forthe creation of detailed histories and logbooks that contain moreinformation than traditional logbooks. The security of these digitallogbooks could be guaranteed by storing them in the blockchain. Inaddition, any regulatory agency, such as the FAA, could be confidentthat the information contained in the detailed histories and logbookswould include only objective facts without a subjective filter.

For further explanation, FIG. 9 sets forth a flow chart illustrating anexemplary method for recording data associated with an unmanned aerialvehicle according to embodiments of the present disclosure. Like theexemplary method of FIG. 6 , the exemplary method of FIG. 9 alsoincludes receiving (602) a transaction message associated with a UAV;using (604) the information within the transaction message to create ablock of data; and storing (606), by the blockchain manager, the createdblock of data in a blockchain data structure associated with the UAV.

The exemplary method of FIG. 9 differs from the method of FIG. 6 in thatreceiving (602) a transaction message associated with a UAV includesreceiving (902), from a control device (901) configured to control theUAV, data (960) directed to the UAV. Receiving (902), from a controldevice configured to control the UAV, data directed to the UAV may becarried out by the control device (e.g., the control device 120 of FIGS.1-2 ; and the server (140) of FIG. 1 ) transmitting to the UAV and thedistributed computing network (151) via the network (118) of FIG. 1 ,transaction messages that include data, such as route information,updated route information, control data, navigation instructions). Aswith the telemetry data of FIG. 8 , by logging and storing the data fromthe control devices in the blockchain data structure, the blockchainmanager may build an immutable logbook of all of the transactionsassociated with the UAV.

For further explanation, FIG. 10 sets forth a flow chart illustrating anexemplary method for recording data associated with an unmanned aerialvehicle according to embodiments of the present disclosure. Like theexemplary method of FIG. 6 , the exemplary method of FIG. 10 alsoincludes receiving (602) a transaction message associated with a UAV;using (604) the information within the transaction message to create ablock of data; and storing (606), by the blockchain manager, the createdblock of data in a blockchain data structure associated with the UAV.

The exemplary method of FIG. 10 differs from the method of FIG. 6 inthat receiving (602) a transaction message associated with a UAVincludes receiving (1002), from a provider participant device (1001),service information (1050) related to a service provided by a providerparticipant and associated with the UAV. Receiving (1002), from aprovider participant device, service information related to a serviceprovided by the provider participant and associated with the UAV may becarried out by receiving the transaction message from the providerparticipant device via a network.

A provider participant device may be a device that is used by a providerparticipant to log and transmit a record of the service that isperformed and associated with a UAV. Examples of provider participantsinclude but are not limited to maintenance technicians and repair shops;infrastructure providers (e.g., providers of UAV storage facilities andparking spots); and insurance providers (e.g., insurance companies thatprovide insurance for flight missions). For example, if a UAV goes to aservice repair shop and gets its battery changed, the technician at theservice repair shop may enter the UAV's information into the providerparticipant device along with a selection of “replaced battery” as adescription of the service that was performed. The provider participantdevice may encapsulate this information along with additionalinformation, such as the flight hours of the UAV, within the serviceinformation. The provider participant device may broadcast a transactionmessage that includes the service information to the distributedcomputing network. As explained above, the blockchain managers of thedistributed computing network may create a block that includes theservice information and store the block in the blockchain (156).

For further explanation, FIG. 11 sets forth a flow chart illustrating anexemplary method for recording data associated with an unmanned aerialvehicle according to embodiments of the present disclosure. Like theexemplary method of FIG. 6 , the exemplary method of FIG. 11 alsoincludes receiving (602) a transaction message associated with a UAV;using (604) the information within the transaction message to create ablock of data; and storing (606), by the blockchain manager, the createdblock of data in a blockchain data structure associated with the UAV.

The exemplary method of FIG. 11 differs from the method of FIG. 6includes authenticating (1102) the transaction message using the publiccryptography key (1152) associated with the originator (1101) of thetransaction message. In a particular embodiment, the information withinthe transaction message is encrypted by the originator of thetransaction message using a unique cryptography private key (1150). Theprivate key and the public key may form a pair of keys such that thepublic key is able to decrypt messages that are encrypted by the privatekey. Authenticating (1102) the transaction message using the publiccryptography key associated with the originator of the transactionmessage may be carried out by retrieving the public key associated withthe originator of the transaction message and using to decrypt thetransaction message. If the public key is able to decrypt thetransaction message, the originator of the transaction message isverified, and the message is authentic.

Exemplary embodiments of the present invention are described largely inthe context of a fully functional computer system for recording dataassociated with a UAV. Readers of skill in the art will recognize,however, that the present invention also may be embodied in a computerprogram product disposed upon computer readable storage media for usewith any suitable data processing system. Such computer readable storagemedia may be any storage medium for machine-readable information,including magnetic media, optical media, or other suitable media.Examples of such media include magnetic disks in hard drives ordiskettes, compact disks for optical drives, magnetic tape, and othersas will occur to those of skill in the art. Persons skilled in the artwill immediately recognize that any computer system having suitableprogramming means will be capable of executing the steps of the methodof the invention as embodied in a computer program product. Personsskilled in the art will recognize also that, although some of theexemplary embodiments described in this specification are oriented tosoftware installed and executing on computer hardware, nevertheless,alternative embodiments implemented as firmware or as hardware are wellwithin the scope of the present invention.

The present invention may be a system, a method, and/or a computerprogram product. The computer program product may include a computerreadable storage medium (or media) having computer readable programinstructions thereon for causing a processor to carry out aspects of thepresent invention.

The computer readable storage medium can be a tangible device that canretain and store instructions for use by an instruction executiondevice. The computer readable storage medium may be, for example, but isnot limited to, an electronic storage device, a magnetic storage device,an optical storage device, an electromagnetic storage device, asemiconductor storage device, or any suitable combination of theforegoing. A non-exhaustive list of more specific examples of thecomputer readable storage medium includes the following: a portablecomputer diskette, a hard disk, a random access memory (RAM), aread-only memory (ROM), an erasable programmable read-only memory (EPROMor Flash memory), a static random access memory (SRAM), a portablecompact disc read-only memory (CD-ROM), a digital versatile disk (DVD),a memory stick, a floppy disk, a mechanically encoded device such aspunch-cards or raised structures in a groove having instructionsrecorded thereon, and any suitable combination of the foregoing. Acomputer readable storage medium, as used herein, is not to be construedas being transitory signals per se, such as radio waves or other freelypropagating electromagnetic waves, electromagnetic waves propagatingthrough a waveguide or other transmission media (e.g., light pulsespassing through a fiber-optic cable), or electrical signals transmittedthrough a wire.

Computer readable program instructions described herein can bedownloaded to respective computing/processing devices from a computerreadable storage medium or to an external computer or external storagedevice via a network, for example, the Internet, a local area network, awide area network and/or a wireless network. The network may comprisecopper transmission cables, optical transmission fibers, wirelesstransmission, routers, firewalls, switches, gateway computers and/oredge servers. A network adapter card or network interface in eachcomputing/processing device receives computer readable programinstructions from the network and forwards the computer readable programinstructions for storage in a computer readable storage medium withinthe respective computing/processing device.

Computer readable program instructions for carrying out operations ofthe present invention may be assembler instructions,instruction-set-architecture (ISA) instructions, machine instructions,machine dependent instructions, microcode, firmware instructions,state-setting data, or either source code or object code written in anycombination of one or more programming languages, including an objectoriented programming language such as Smalltalk, C++ or the like, andconventional procedural programming languages, such as the “C”programming language or similar programming languages. The computerreadable program instructions may execute entirely on the user'scomputer, partly on the user's computer, as a stand-alone softwarepackage, partly on the user's computer and partly on a remote computeror entirely on the remote computer or server. In the latter scenario,the remote computer may be connected to the user's computer through anytype of network, including a local area network (LAN) or a wide areanetwork (WAN), or the connection may be made to an external computer(for example, through the Internet using an Internet Service Provider).In some embodiments, electronic circuitry including, for example,programmable logic circuitry, field-programmable gate arrays (FPGA), orprogrammable logic arrays (PLA) may execute the computer readableprogram instructions by utilizing state information of the computerreadable program instructions to personalize the electronic circuitry,in order to perform aspects of the present invention.

Hardware logic, including programmable logic for use with a programmablelogic device (PLD) implementing all or part of the functionalitypreviously described herein, may be designed using traditional manualmethods or may be designed, captured, simulated, or documentedelectronically using various tools, such as Computer Aided Design (CAD)programs, a hardware description language (e.g., VHDL or Verilog), or aPLD programming language. Hardware logic may also be generated by anon-transitory computer readable medium storing instructions that, whenexecuted by a processor, manage parameters of a semiconductor component,a cell, a library of components, or a library of cells in electronicdesign automation (EDA) software to generate a manufacturable design foran integrated circuit. In implementation, the various componentsdescribed herein might be implemented as discrete components or thefunctions and features described can be shared in part or in total amongone or more components. Aspects of the present invention are describedherein with reference to flowchart illustrations and/or block diagramsof methods, apparatus (systems), and computer program products accordingto embodiments of the invention. It will be understood that each blockof the flowchart illustrations and/or block diagrams, and combinationsof blocks in the flowchart illustrations and/or block diagrams, can beimplemented by computer readable program instructions.

These computer readable program instructions may be provided to aprocessor of a general purpose computer, special purpose computer, orother programmable data processing apparatus to produce a machine, suchthat the instructions, which execute via the processor of the computeror other programmable data processing apparatus, create means forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks. These computer readable program instructionsmay also be stored in a computer readable storage medium that can directa computer, a programmable data processing apparatus, and/or otherdevices to function in a particular manner, such that the computerreadable storage medium having instructions stored therein comprises anarticle of manufacture including instructions which implement aspects ofthe function/act specified in the flowchart and/or block diagram blockor blocks.

The computer readable program instructions may also be loaded onto acomputer, other programmable data processing apparatus, or other deviceto cause a series of operational steps to be performed on the computer,other programmable apparatus or other device to produce a computerimplemented process, such that the instructions which execute on thecomputer, other programmable apparatus, or other device implement thefunctions/acts specified in the flowchart and/or block diagram block orblocks.

The flowchart and block diagrams in the Figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods, and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof instructions, which comprises one or more executable instructions forimplementing the specified logical function(s). In some alternativeimplementations, the functions noted in the block may occur out of theorder noted in the figures. For example, two blocks shown in successionmay, in fact, be executed substantially concurrently, or the blocks maysometimes be executed in the reverse order, depending upon thefunctionality involved. It will also be noted that each block of theblock diagrams and/or flowchart illustration, and combinations of blocksin the block diagrams and/or flowchart illustration, can be implementedby special purpose hardware-based systems that perform the specifiedfunctions or acts or carry out combinations of special purpose hardwareand computer instructions.

It will be understood from the foregoing description that modificationsand changes may be made in various embodiments of the present inventionwithout departing from its true spirit. The descriptions in thisspecification are for purposes of illustration only and are not to beconstrued in a limiting sense. The scope of the present invention islimited only by the language of the following claims.

What is claimed is:
 1. A method for recording data associated with anunmanned aerial vehicle (UAV), the method comprising: receiving, by ablockchain manager, a transaction message associated with a UAV; using,by the blockchain manager, the information within the transactionmessage to create a block of data; and storing, by the blockchainmanager, the created block of data in a blockchain data structureassociated with the UAV.
 2. The method of claim 1 wherein using theinformation within the transaction message to create a block of dataincludes: filling a logbook entry form with the information within thetransaction message; and representing the logbook entry form in theblock of data.
 3. The method of claim 1 wherein the transaction messageincludes data in a logbook entry format.
 4. The method of claim 1wherein receiving the transaction message includes receiving, from theUAV, telemetry data indicating at least one of: a position of the UAVand operational parameters of the UAV.
 5. The method of claim 1 whereinreceiving the transaction message includes receiving, from a controldevice configured to control the UAV, data directed to the UAV.
 6. Themethod of claim 1 wherein receiving the transaction message includesreceiving, from a provider participant device, service informationrelated to a service provided by a provider participant and associatedwith the UAV.
 7. The method of claim 1 wherein the information withinthe transaction message is encrypted by the originator of thetransaction message using a unique cryptography private key; the methodfurther comprising authenticating the transaction message using thepublic cryptography key associated with the originator of thetransaction message.
 8. An apparatus for recording data associated withan unmanned aerial vehicle (UAV), the apparatus comprising: a processor;and a memory storing instructions, the instructions executable by theprocessor to: receive, by a blockchain manager, a transaction messageassociated with a UAV; use, by the blockchain manager, the informationwithin the transaction message to create a block of data; and store, bythe blockchain manager, the created block of data in a blockchain datastructure associated with the UAV.
 9. The apparatus of claim 8 whereinusing the information within the transaction message to create a blockof data includes: filling a logbook entry form with the informationwithin the transaction message; and representing the logbook entry formin the block of data.
 10. The apparatus of claim 8 wherein thetransaction message includes data in a logbook entry format.
 11. Theapparatus of claim 8 wherein receiving the transaction message includesreceiving, from the UAV, telemetry data indicating at least one of: aposition of the UAV and operational parameters of the UAV.
 12. Theapparatus of claim 8 wherein receiving the transaction message includesreceiving, from a control device configured to control the UAV, datadirected to the UAV.
 13. The apparatus of claim 8 wherein receiving thetransaction message includes receiving, from a provider participantdevice, service information related to a service provided by a providerparticipant and associated with the UAV.
 14. The apparatus of claim 8wherein the information within the transaction message is encrypted bythe originator of the transaction message using a unique cryptographyprivate key; the method further comprising authenticating thetransaction message using the public cryptography key associated withthe originator of the transaction message.
 15. A non-transitorycomputer-readable medium for recording data associated with an unmannedaerial vehicle (UAV), the computer-readable medium storing instructionsthat, when executed by a processor, cause the processor to performoperations, the operations comprising: receiving, by a blockchainmanager, a transaction message associated with a UAV; using, by theblockchain manager, the information within the transaction message tocreate a block of data; and storing, by the blockchain manager, thecreated block of data in a blockchain data structure associated with theUAV.
 16. The computer-readable medium of claim 15 wherein using theinformation within the transaction message to create a block of dataincludes: filling a logbook entry form with the information within thetransaction message; and representing the logbook entry form in theblock of data.
 17. The computer-readable medium of claim 15 wherein thetransaction message includes data in a logbook entry format.
 18. Thecomputer-readable medium of claim 15 wherein receiving the transactionmessage includes receiving, from the UAV, telemetry data indicating atleast one of: a position of the UAV and operational parameters of theUAV.
 19. The computer-readable medium of claim 15 wherein receiving thetransaction message includes receiving, from a control device configuredto control the UAV, data directed to the UAV.
 20. The computer-readablemedium of claim 15 wherein receiving the transaction message includesreceiving, from a provider participant device, service informationrelated to a service provided by a provider participant and associatedwith the UAV.